/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package State;

/**
 *
 * @author David
 */
public class Main {

   
    public static void main(String[] args) {
        /**
         * Exécution avec différent test du distributeur codé
         * simplement, sans découpage des états
         */
        Distributeur distrib = new Distributeur();
        //essai rentrer code sans carte
        distrib.entrerCode(555);
        //essai retirer espece sans carte
        distrib.retirerEspece(50);
        //essai retirer carte sans carte
        distrib.retirerCarte();
        //essai rentrer code sans carte
        distrib.entrerCode(555);
        // essai retrait carte sans carte
        distrib.retirerCarte();
        distrib.retirerCarte();
        distrib.retirerEspece(50);
        //insertion carte
        distrib.insererCarte(new Carte(555));
        //essai insertion carte avec carte déjà présente
        distrib.insererCarte(new Carte(565));
        // essai mauvais code 3 fois de suite pour vérification avalage carte
        distrib.entrerCode(565);
        distrib.entrerCode(565);
        distrib.entrerCode(565);
        // vérification de retrait impossible puisque carte avalée
        distrib.retirerEspece(50);
        //instertion  nouvelle carte
        distrib.insererCarte(new Carte(565));
        //entré code bon
        distrib.entrerCode(565);
        // retrait argent
        distrib.retirerEspece(50);
        distrib.retirerEspece(500);
        // essai d'un retrait impossible par rapport au solde
        distrib.retirerEspece(500);
        // essai retrait possible
        distrib.retirerEspece(50);
        // retirer la carte
        distrib.retirerCarte();
        // essai retrait argent apres retrait carte
        distrib.retirerEspece(50);
        // remplissage distributeur
        distrib.remplirDistrib(1000);
        // insertion nouvelle carte
        distrib.insererCarte(new Carte(565));
        distrib.entrerCode(565);
        distrib.retirerEspece(1000);
        // test retrait impossible
        distrib.retirerEspece(1000);
        // retrait possible mais carte rendu carte distrib vide
        distrib.retirerEspece(400);
        // templissage distrib
        distrib.remplirDistrib(1000);
        // impossible de retirer car carte rendue
        distrib.retirerEspece(1000);
        distrib.insererCarte(new Carte(565));
    }
}
